﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DTTB.MV2.QUANLYNHANSUTIENLUONG.BussinessDelegate.CommonDelegate;
using DTTB.MV2.QUANLYNHANSUTIENLUONG.BussinessDelegate.ReportsDelegate;
using DTTB.MV2.QUANLYNHANSUTIENLUONG.BussinessDelegate.ChamCongDelegate;
using System.Text;
using DTTB.MV2.QUANLYNHANSUTIENLUONG.BussinessDelegate.PhanQuyen;
using System.Data;
using DTTB.MV2.QUANLYNHANSUTIENLUONG.BussinessDelegate.TinhLuong;

namespace DTTB.MV2.QUANLYNHANSUTIENLUONG.Controllers
{
    public class ReportsController : Controller
    {
        #region Private Member

        const string _tenDoanhNghiep = "DNTT TMDV LỘC BÌNH AN";
        CommonDelegate _commonDelegate = new CommonDelegate();
        ReportsServiceDelegate _reportsServiceDelegate = new ReportsServiceDelegate();
        ChamCongServiceDelegate _chamCongServiceDelegate = new ChamCongServiceDelegate();
        DepartmentsServiceDelegate _departmentsServiceDelegate = new DepartmentsServiceDelegate();
        TinhLuongHangThangServiceDelegate _tinhLuongHangThangServiceDelegate = new TinhLuongHangThangServiceDelegate();

        #endregion

        #region BACNP

        /// <summary>
        /// Xuất File Excel Bảng Chấm Công
        /// </summary>
        /// <param name="id">Id Bảng Chấm Công (Mã Bảng Chấm Công)</param>
        /// <param name="idPhongBan">List Id Phòng Ban (Phân Tách Nhau Bởi Dấu '|'), Nếu Để Trống Trường Này sẽ In Bảng Chấm Công của toàn Công Ty</param>
        public void XuatBangChamCong(int id, string idPhongBan)
        {
            var objBangChamCong = _chamCongServiceDelegate.GetBangChamCongByIdBangChamCong(id);
            if (objBangChamCong == null)
                return;

            IList<int> lstIdPhongBan = !string.IsNullOrEmpty(idPhongBan)
                ? idPhongBan.Split('|').Select(p => Convert.ToInt32(p)).Distinct().ToList()
                : new List<int>();

            var lstNgayChuNhatTrongThang = _commonDelegate.GetListDateIsSunDay(objBangChamCong.Thang, objBangChamCong.Nam);

            int soNgayCuaThang = DateTime.DaysInMonth(objBangChamCong.Nam, objBangChamCong.Thang);
            int tongSoCot = 5 + soNgayCuaThang + 15;
            //Số dòng dữ liệu cần hiển thị trên mỗi trang - Gán bằng số ảo để Hiển thị tất cả dòng chỉ trên 1 Trang
            int itemPerPage = 9999999;
            string hoTenNguoiLapBieu = "Trương Thị Mến";    //Viết thêm Code lấy người lập biểu (User đăng nhập hệ thống)
            hoTenNguoiLapBieu = !string.IsNullOrEmpty(hoTenNguoiLapBieu) ? hoTenNguoiLapBieu.ToUpper().Trim() : string.Empty;
            string hoTenNguoiKyDuyet = "Võ Thị Ngọc Nhi";    //Viết thêm Code lấy người người ký duyệt
            hoTenNguoiKyDuyet = !string.IsNullOrEmpty(hoTenNguoiKyDuyet) ? hoTenNguoiKyDuyet.ToUpper().Trim() : string.Empty;

            StringBuilder strBuilder = new StringBuilder();
            #region Build CSS

            strBuilder.AppendLine("<style>");
            strBuilder.AppendLine("   .CenterMiddle{ text-align: center; vertical-align: middle; }");
            strBuilder.AppendLine("   .Center{ text-align: center; }");
            strBuilder.AppendLine("</style>");

            #endregion
            #region Build Phần Đầu Trang
            strBuilder.AppendLine(string.Format("<table>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td></td><td></td><td colspan='{0}' style='font-size: 20pt;'>{1}</td>", tongSoCot - 2, _tenDoanhNghiep));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td colspan='{0}' class='Center' style='font-size: 25pt;'>BẢNG CHẤM CÔNG THÁNG {1}/{2}</td>", tongSoCot, objBangChamCong.Thang.ToString("0#"), objBangChamCong.Nam));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("</table>"));
            #endregion
            #region Build Bảng Dữ Liệu

            strBuilder.AppendLine(string.Format("<table border='1' style='font-weight: bold; font-size: 9pt;'>"));
            #region Build Tiêu Đề Cột
            strBuilder.AppendLine(string.Format("   <tr style='font-size: 10pt;'>"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #c0c0c0; height: 50px;'>{0}</td>", "STT"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #c0c0c0;'>{0}</td>", "Số thẻ"));
            strBuilder.AppendLine(string.Format("       <td colspan='2' class='CenterMiddle' style='background-color: #c0c0c0;'>{0}</td>", "Họ và tên"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #c0c0c0;'>{0}</td>", "Ngày nhận việc"));
            for (int indexNgay = 0; indexNgay < soNgayCuaThang; indexNgay++)
            {
                strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff00;'>{0}</td>", indexNgay + 1));
            }
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "Thử việc"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "Khám thai"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #cc99ff;'>{0}</td>", "CP"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #cc99ff;'>{0}</td>", "KP"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "CB"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "B"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "TS"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "Phép năm"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "Chế độ"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "LỄ"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "Nghỉ ko có việc"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "Tăng ca"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "TCĐB"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "Vắng mặt"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99; color: #ff0000;'>{0}</td>", "Số ngày làm việc"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "Ca đêm"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffcc99;'>{0}</td>", "PN đến ngày 31/09"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "PN sdụng đến ngày 31/09"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "PN chưa sdụng đến ngày 31/09"));
            strBuilder.AppendLine(string.Format("       <td class='CenterMiddle' style='background-color: #ffff99;'>{0}</td>", "Tình trạng PN"));
            strBuilder.AppendLine(string.Format("   </tr>"));
            #endregion

            #region Build Từng Dòng
            if (lstIdPhongBan.Count == 0)
            {
                //Hiển thị tất cả nhân viên trong Bảng Chấm Công
                #region Lấy tất cả nhân viên trong Bảng Chấm Công
                int totalItem = 0;
                int totalPage = 0;
                var lstChamCongNgay = _chamCongServiceDelegate.SearchChamCongNgayNhanVienByIdBangChamCongOrderByTen(id, null, null, string.Empty, 1, itemPerPage, ref totalItem, ref totalPage);

                int indexSoThuTu = 1;
                foreach (var itemChamCongNgay in lstChamCongNgay)
                {
                    var objNhanVien = _chamCongServiceDelegate.GetNhanVienById(itemChamCongNgay.MaNhanVien);
                    if(objNhanVien == null)
                    {
                        objNhanVien = new Models.LinQ.ChamCong.hs_NhanVien();
                        objNhanVien.Ho = "Nhân Viên Đã Bị Xóa Hoặc Không Tồn Tại";
                    }
                    strBuilder.AppendLine(string.Format("   <tr>"));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='font-weight: normal; height: 30px;'>{0}</td>", indexSoThuTu));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='color: #00f;'>{0}</td>", objNhanVien.SoThe));
                    strBuilder.AppendLine(string.Format("       <td>{0}</td>", !string.IsNullOrEmpty(objNhanVien.Ho) ? objNhanVien.Ho.ToUpper().Trim() : ""));
                    strBuilder.AppendLine(string.Format("       <td>{0}</td>", !string.IsNullOrEmpty(objNhanVien.Ten) ? objNhanVien.Ten.ToUpper().Trim() : ""));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='color: #00f;'>{0}</td>", _commonDelegate.ConvertDateTimeToString(objNhanVien.NgayVaoLam)));
                    for (int indexNgay = 1; indexNgay <= soNgayCuaThang; indexNgay++)
                    {
                        if (lstNgayChuNhatTrongThang.Contains(indexNgay))
                            strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffff00;'>{0}</td>", _chamCongServiceDelegate.GetKyHieuChamCongNgayByChamCongNgayVaNgay(itemChamCongNgay, indexNgay)));
                        else
                            strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", _chamCongServiceDelegate.GetKyHieuChamCongNgayByChamCongNgayVaNgay(itemChamCongNgay, indexNgay)));
                    }
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongThuViec.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiKhamThai.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #cc99ff;'>{0}</td>", itemChamCongNgay.TongNghiCoPhep.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #cc99ff;'>{0}</td>", itemChamCongNgay.TongNghiKhongPhep.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiConBenh.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiBenh.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiThaiSan.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiPhepNam.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiCheDo.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiLe.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiKhongCoViec.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongSoGioTangCa.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", "TCĐB"));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='color: #f0f;'>{0}</td>", itemChamCongNgay.TongVangMat.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='color: #ff0000;'>{0}</td>", itemChamCongNgay.TongSoNgayLamViec.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffff99;'>{0}</td>", itemChamCongNgay.TongCaDem.ToString("0#")));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffcc99;'>{0}</td>", "PN đến ngày 31/09"));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffff99;'>{0}</td>", "PN sdụng đến ngày 31/09"));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffff99;'>{0}</td>", "PN chưa sdụng đến ngày 31/09"));
                    strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffff99;'>{0}</td>", "Tình trạng PN"));
                    strBuilder.AppendLine(string.Format("   </tr>"));
                    indexSoThuTu++;
                }
                #endregion
            }
            else
            {
                //Hiển thị Group theo Phòng Ban
                #region Lấy nhân viên trong Bảng Chấm Công và Group theo Phòng Ban
                foreach (var itemIdPhongBan in lstIdPhongBan)
                {
                    int totalItem = 0;
                    int totalPage = 0;
                    var lstChamCongNgay = _chamCongServiceDelegate.SearchChamCongNgayNhanVienByIdBangChamCongOrderByTen(id, itemIdPhongBan, null, string.Empty, 1, itemPerPage, ref totalItem, ref totalPage);
                    string tenPhongBan = _departmentsServiceDelegate.GetDepartmentsById(Convert.ToString(itemIdPhongBan)).DepartmentName;

                    strBuilder.AppendLine("   <tr>");
                    strBuilder.AppendLine("       <td></td>");
                    strBuilder.AppendLine(string.Format("     <td colspan='{0}'><h4>{1}</h4></td>", tongSoCot - 1, tenPhongBan));
                    strBuilder.AppendLine("   </tr>");

                    int indexSoThuTu = 1;
                    foreach (var itemChamCongNgay in lstChamCongNgay)
                    {
                        var objNhanVien = _chamCongServiceDelegate.GetNhanVienById(itemChamCongNgay.MaNhanVien);
                        if (objNhanVien == null)
                        {
                            objNhanVien = new Models.LinQ.ChamCong.hs_NhanVien();
                            objNhanVien.Ho = "Nhân Viên Đã Bị Xóa Hoặc Không Tồn Tại";
                        }
                        strBuilder.AppendLine(string.Format("   <tr>"));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='font-weight: normal; height: 30px;'>{0}</td>", indexSoThuTu));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='color: #00f;'>{0}</td>", objNhanVien.SoThe));
                        strBuilder.AppendLine(string.Format("       <td>{0}</td>", !string.IsNullOrEmpty(objNhanVien.Ho) ? objNhanVien.Ho.ToUpper().Trim() : ""));
                        strBuilder.AppendLine(string.Format("       <td>{0}</td>", !string.IsNullOrEmpty(objNhanVien.Ten) ? objNhanVien.Ten.ToUpper().Trim() : ""));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='color: #00f;'>{0}</td>", _commonDelegate.ConvertDateTimeToString(objNhanVien.NgayVaoLam)));
                        for (int indexNgay = 1; indexNgay <= soNgayCuaThang; indexNgay++)
                        {
                            if (lstNgayChuNhatTrongThang.Contains(indexNgay))
                                strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffff00;'>{0}</td>", _chamCongServiceDelegate.GetKyHieuChamCongNgayByChamCongNgayVaNgay(itemChamCongNgay, indexNgay)));
                            else
                                strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", _chamCongServiceDelegate.GetKyHieuChamCongNgayByChamCongNgayVaNgay(itemChamCongNgay, indexNgay)));
                        }
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongThuViec.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiKhamThai.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #cc99ff;'>{0}</td>", itemChamCongNgay.TongNghiCoPhep.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #cc99ff;'>{0}</td>", itemChamCongNgay.TongNghiKhongPhep.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiConBenh.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiBenh.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiThaiSan.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiPhepNam.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiCheDo.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiLe.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongNghiKhongCoViec.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", itemChamCongNgay.TongSoGioTangCa.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center'>{0}</td>", "TCĐB"));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='color: #f0f;'>{0}</td>", itemChamCongNgay.TongVangMat.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='color: #ff0000;'>{0}</td>", itemChamCongNgay.TongSoNgayLamViec.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffff99;'>{0}</td>", itemChamCongNgay.TongCaDem.ToString("0#")));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffcc99;'>{0}</td>", "PN đến ngày 31/09"));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffff99;'>{0}</td>", "PN sdụng đến ngày 31/09"));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffff99;'>{0}</td>", "PN chưa sdụng đến ngày 31/09"));
                        strBuilder.AppendLine(string.Format("       <td class='Center' style='background-color: #ffff99;'>{0}</td>", "Tình trạng PN"));
                        strBuilder.AppendLine(string.Format("   </tr>"));
                        indexSoThuTu++;
                    }
                }
                #endregion
            }

            #endregion
            strBuilder.AppendLine(string.Format("</table>"));

            #endregion
            #region Build Phần Cuối Trang
            strBuilder.AppendLine(string.Format("<table style='font-size: 9pt;'>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td></td><td></td><td class='Center' colspan='3'><u><i><b>Người lập biểu</b></i></u></td>"));
            for (int indexNgay = -4; indexNgay < soNgayCuaThang; indexNgay++)
            {
                strBuilder.AppendLine(string.Format("       <td></td>"));
            }
            strBuilder.AppendLine(string.Format("     <td class='Center' colspan='5'><u><i><b>Ký Duyệt</b></i></u></td>"));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td><br /><br /><br /></td>"));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td></td><td></td><td class='Center' colspan='3'><b>{0}</b></td>", hoTenNguoiLapBieu));
            for (int indexNgay = -4; indexNgay < soNgayCuaThang; indexNgay++)
            {
                strBuilder.AppendLine(string.Format("       <td></td>"));
            }
            strBuilder.AppendLine(string.Format("     <td class='Center' colspan='5'><b>{0}</b></td>", hoTenNguoiKyDuyet));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("</table>"));
            #endregion
            var strDocument = _reportsServiceDelegate.AddBodyTagForExportWord(strBuilder.ToString());
            _reportsServiceDelegate.ExportHtmlToExcel(strDocument, string.Format("BangChamCongThang{0}-{1}", objBangChamCong.Thang.ToString("0#"), objBangChamCong.Nam));
        }

        /// <summary>
        /// Xuất File Excel Bảng Lương
        /// </summary>
        /// <param name="id">Id Bảng Lương (Mã Bảng Lương)</param>
        public void XuatBangLuong(int id)
        {
            var lstBangLuongNhanVien = _reportsServiceDelegate.BuildListBangLuongNhanVienForm(id);
            var objBangTinhLuong = _tinhLuongHangThangServiceDelegate.ReportGetAllTinhLuongByIdBangTinhLuong(id).First();

            var objBangChamCong = _chamCongServiceDelegate.GetBangChamCongByIdBangChamCong(objBangTinhLuong.IdBangChamCong);
            if (objBangChamCong == null)
                return;

            int tongSoCot = 39;
            int tongSoDong = lstBangLuongNhanVien.Count;
            string hoTenNguoiLapBieu = _commonDelegate.GetDisplayNameByUserId(Convert.ToString(Session["USERID"])); //Lấy người lập biểu (User đăng nhập hệ thống)
            hoTenNguoiLapBieu = !string.IsNullOrEmpty(hoTenNguoiLapBieu) ? hoTenNguoiLapBieu.Trim() : "Trương Thị Mến";
            hoTenNguoiLapBieu = !string.IsNullOrEmpty(hoTenNguoiLapBieu) ? hoTenNguoiLapBieu.ToUpper().Trim() : string.Empty;
            string hoTenGiamDocDoanhNghiep = "Võ Thị Ngọc Nhi";    //Viết thêm Code lấy giám đốc doanh nghiệp
            hoTenGiamDocDoanhNghiep = !string.IsNullOrEmpty(hoTenGiamDocDoanhNghiep) ? hoTenGiamDocDoanhNghiep.ToUpper().Trim() : string.Empty;
            string tuNgay = objBangTinhLuong != null && objBangTinhLuong.TuNgayTinhLuong != null ? objBangTinhLuong.TuNgayTinhLuong.Value.ToString("dd/MM/yyyy") : string.Empty;
            string denNgay = objBangTinhLuong != null && objBangTinhLuong.DenNgayTinhLuong != null ? objBangTinhLuong.DenNgayTinhLuong.Value.ToString("dd/MM/yyyy") : string.Empty;

            StringBuilder strBuilder = new StringBuilder();
            #region Build CSS

            strBuilder.AppendLine("<style>");
            strBuilder.AppendLine("   .CenterMiddle{ text-align: center; vertical-align: middle; }");
            strBuilder.AppendLine("   .Center{ text-align: center; }");
            strBuilder.AppendLine("   .Middle{ vertical-align: middle; }");
            strBuilder.AppendLine("</style>");

            #endregion
            #region Build Phần Đầu Trang
            strBuilder.AppendLine(string.Format("<table>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td colspan='{0}' style='font-size: 10pt;'>{1}</td>", tongSoCot, _tenDoanhNghiep));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td colspan='{0}' class='Center' style='font-size: 18pt;'><b>LƯƠNG THÁNG {1}/{2}</b></td>", tongSoCot, objBangChamCong.Thang.ToString("0#"), objBangChamCong.Nam));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td colspan='{0}'></td><td colspan='{1}' class='Center'><b>LƯƠNG THÁNG {2}/{3}</b></td>", tongSoCot - 8, 6, tuNgay, denNgay));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("</table>"));
            #endregion
            #region Build Bảng Dữ Liệu

            strBuilder.AppendLine(string.Format("<table border='1' style='font-size: 10pt;'>"));
            #region Build Tiêu Đề Cột
            strBuilder.AppendLine(string.Format("   <tr style='font-weight: bold;'>"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "STT"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Số thẻ"));
            strBuilder.AppendLine(string.Format("       <td colspan='2'>{0}</td>", "Họ tên"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Ký nhận"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Người phụ thuộc"));
            strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", "Lương căn bản HĐ"));
            strBuilder.AppendLine(string.Format("       <td style='color: 00f;'>{0}</td>", "Lương"));
            strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", "PC trách nhiệm"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "PC trách nhiệm"));
            strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", "TC chuyên cần"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "TC chuyên cần"));
            strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", "TC đi lại"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "TC đi lại"));
            strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", "Trợ cấp cơm"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "TC cơm"));
            strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", "TC điện thoại"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "TC điện thoại"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Nghỉ lễ, Phép năm, chế độ"));
            strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", "Thưởng KM"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Thưởng chuyến (C)"));
            strBuilder.AppendLine(string.Format("       <td style='width: 0px;'>{0}</td>", "Tổng tăng ca 100%"));
            strBuilder.AppendLine(string.Format("       <td style='width: 0px;'>{0}</td>", "Trợ cấp tăng ca 50%"));
            strBuilder.AppendLine(string.Format("       <td style='width: 0px;'>{0}</td>", "Trợ cấp tăng ca 100%"));
            strBuilder.AppendLine(string.Format("       <td style='width: 0px;'>{0}</td>", "Trợ cấp ca đêm 30%"));
            strBuilder.AppendLine(string.Format("       <td style='width: 0px;'>{0}</td>", "Trợ cấp ca đêm 45%"));
            strBuilder.AppendLine(string.Format("       <td style='width: 0px;'>{0}</td>", "Nghỉ chế độ"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Thưởng hiệu quả công việc"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Điều chỉnh"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "BHXH"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "BHYT"));
            strBuilder.AppendLine(string.Format("       <td style='width: 0px;'>{0}</td>", "BHTN"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Thu nhập trước thuế"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Thuế thu nhập"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Thực lãnh (A)"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "Tạm ứng (B)"));
            strBuilder.AppendLine(string.Format("       <td>{0}</td>", "A-B-C"));
            strBuilder.AppendLine(string.Format("       <td style='color: #800080'>{0}</td>", "Trả gộp"));
            strBuilder.AppendLine(string.Format("       <td style='color: #800080'>{0}</td>", "Tổng khấu trừ"));
            strBuilder.AppendLine(string.Format("   </tr>"));
            #endregion

            #region Build Từng Dòng

            int indexRow = 0;
            foreach (var item in lstBangLuongNhanVien)
            {
                strBuilder.AppendLine(string.Format("   <tr class='Middle'>"));
                strBuilder.AppendLine(string.Format("       <td></td><td></td><td></td><td></td><td></td><td></td><td></td>"));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoNgayCong));
                strBuilder.AppendLine(string.Format("       <td></td>"));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoNgayHuongPCTrachNhiem));
                strBuilder.AppendLine(string.Format("       <td></td>"));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoNgayHuongTCChuyenCan));
                strBuilder.AppendLine(string.Format("       <td></td>"));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoNgayHuongPhuCapDiLai));
                strBuilder.AppendLine(string.Format("       <td></td>"));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoNgayHuongTCChuyenCan));
                strBuilder.AppendLine(string.Format("       <td></td>"));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoNgayHuongPhuCapTienCom));
                strBuilder.AppendLine(string.Format("       <td></td>"));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoNgayHuongPhuCapDienThoai));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.NghiLeNghiPhepCheDo));
                strBuilder.AppendLine(string.Format("       <td></td><td></td><td></td><td></td><td></td><td></td>"));
                strBuilder.AppendLine(string.Format("       <td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>"));
                strBuilder.AppendLine(string.Format("   </tr>"));

                strBuilder.AppendLine(string.Format("   <tr class='Middle'>"));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", indexRow + 1));
                strBuilder.AppendLine(string.Format("       <td style='color: #00f;'>{0}</td>", item.SoThe));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", !string.IsNullOrEmpty(item.Ho.ToString()) ? item.Ho.ToString().ToUpper().Trim() : ""));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", !string.IsNullOrEmpty(item.Ten.ToString()) ? item.Ten.ToString().ToUpper().Trim() : ""));
                strBuilder.AppendLine(string.Format("       <td></td>"));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoTienNguoiPhuThuoc));
                strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", item.LuongCanBanHopDong));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.LuongCanBanThucLanh));
                strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", item.PCTrachNhiem));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.PCTrachNhiemThucLanh));
                strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", item.TCChuyenCan));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.TCChuyenCanThucLanh));
                strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", item.PhuCapDiLai));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.PhuCapDiLaiThucLanh));
                strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", item.PhuCapTienCom));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.PhuCapTienComThucLanh));
                strBuilder.AppendLine(string.Format("       <td style='color: #f00;'>{0}</td>", item.PhuCapDienThoai));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.PhuCapDienThoaiThucLanh));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.TienNghiLeNghiPhepCheDo));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoTienThuongKmThucLanh));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoTienThuongChuyenThucLanh));

                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.TongTangCa100Percent));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.TroCapTangCa50Percent));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.TroCapTangCa100Percent));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.TroCapCaDem30Percent));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.TroCapCaDem45Percent));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.NghiCheDo));

                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.SoTienThuongHieuQuaCongViec));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.DieuChinh));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.BHXH));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.BHYT));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.BHTN));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.ThuNhapTruocThue));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.ThueThuNhap));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.TongTienThucLanh));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.TienTamUng));
                strBuilder.AppendLine(string.Format("       <td>{0}</td>", item.TienABC));
                strBuilder.AppendLine(string.Format("       <td style='color: #00f;'>{0}</td>", item.TienTraGop));
                strBuilder.AppendLine(string.Format("       <td style='color: #800080;'>{0}</td>", item.TongTienKhauTru));
                strBuilder.AppendLine(string.Format("   </tr>"));
                indexRow++;
            }

            #endregion
            strBuilder.AppendLine(string.Format("</table>"));
            #endregion
            #region Build Phần Cuối Trang
            strBuilder.AppendLine(string.Format("<table style='font-size: 10pt;'>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td></td><td></td><td></td><td></td><td></td><td></td><td class='Center' colspan='3'><b>NGƯỜI LẬP BIỂU</b></td>"));
            strBuilder.AppendLine(string.Format("     <td class='Center' colspan='5'><b>GIÁM ĐỐC DOANH NGHIỆP</b></td>"));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td><br /><br /><br /></td>"));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("   <tr>"));
            strBuilder.AppendLine(string.Format("     <td></td><td></td><td></td><td></td><td></td><td></td><td class='Center' colspan='3'><b>{0}</b></td>", hoTenNguoiLapBieu));
            strBuilder.AppendLine(string.Format("     <td class='Center' colspan='5'><b>{0}</b></td>", hoTenGiamDocDoanhNghiep));
            strBuilder.AppendLine(string.Format("   </tr>"));
            strBuilder.AppendLine(string.Format("</table>"));
            #endregion
            var strDocument = _reportsServiceDelegate.AddBodyTagForExportWord(strBuilder.ToString());
            _reportsServiceDelegate.ExportHtmlToExcel(strDocument, string.Format("BangLuongThang{0}-{1}", objBangChamCong.Thang.ToString("0#"), objBangChamCong.Nam));
        }

        /// <summary>
        /// Xuất File Excel Phiếu Lương
        /// </summary>
        /// <param name="id">Id Bảng Lương (Mã Bảng Lương)</param>
        public void XuatPhieuLuong(int id)
        {
            var lstBangLuongNhanVien = _reportsServiceDelegate.BuildListBangLuongNhanVienForm(id);
            var objBangTinhLuong = _tinhLuongHangThangServiceDelegate.ReportGetAllTinhLuongByIdBangTinhLuong(id).First();
            var objBaoHiem = _tinhLuongHangThangServiceDelegate.ReportGetBaoHiemById(objBangTinhLuong.IdCauHinhBaoHiem ?? 0);

            var objBangChamCong = _chamCongServiceDelegate.GetBangChamCongByIdBangChamCong(objBangTinhLuong.IdBangChamCong);
            if (objBangChamCong == null)
                return;

            int tongSoDong = lstBangLuongNhanVien.Count;
            string tuNgay = objBangTinhLuong != null && objBangTinhLuong.TuNgayTinhLuong != null ? objBangTinhLuong.TuNgayTinhLuong.Value.ToString("dd/MM/yyyy") : string.Empty;
            string denNgay = objBangTinhLuong != null && objBangTinhLuong.DenNgayTinhLuong != null ? objBangTinhLuong.DenNgayTinhLuong.Value.ToString("dd/MM/yyyy") : string.Empty;

            string phanTramBHXH = "7%";
            string phanTramBHYT = "1.5%";
            string phanTramBHTN = "0%";
            if (objBaoHiem != null)
            {
                phanTramBHXH = Convert.ToString(objBaoHiem.BHXH) + "%";
                phanTramBHYT = Convert.ToString(objBaoHiem.BHYT) + "%";
                phanTramBHTN = Convert.ToString(objBaoHiem.BHTN) + "%";
            }

            StringBuilder strBuilder = new StringBuilder();
            #region Build CSS

            strBuilder.AppendLine("<style>");
            strBuilder.AppendLine("   .CenterMiddle{ text-align: center; vertical-align: middle; }");
            strBuilder.AppendLine("   .Center{ text-align: center; }");
            strBuilder.AppendLine("   .Middle{ vertical-align: middle; }");
            strBuilder.AppendLine("</style>");

            #endregion

            #region Build Từng Dòng

            int indexRow = 0;
            foreach (var item in lstBangLuongNhanVien)
            {
                string hoTenNhanVien = item.Ho.ToString() + " " + item.Ten.ToString();
                hoTenNhanVien = !string.IsNullOrEmpty(hoTenNhanVien) ? hoTenNhanVien.ToUpper().Trim() : "";
                int firstRowInTableExcel = indexRow * 23;

                strBuilder.AppendLine(string.Format("<table style='font-size: 10pt; border-style: double;'>"));
                strBuilder.AppendLine(string.Format("   <tr style='text-align: center;'>"));
                strBuilder.AppendLine(string.Format("     <td colspan='{0}'><b>{1}</b></td>", 4, _tenDoanhNghiep));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr style='text-align: center;'>"));
                strBuilder.AppendLine(string.Format("     <td colspan='{0}'>Phiếu lương từ ngày {1} đến {2}</td>", 4, tuNgay, denNgay));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("</table>"));
                strBuilder.AppendLine(string.Format("<table style='font-size: 12pt; border-style: double;'>"));
                strBuilder.AppendLine(string.Format("   <tr style='font-size: 10pt; font-weight: bold;'>"));
                strBuilder.AppendLine(string.Format("     <td>Số thẻ:</td><td>{0}</td>", item.SoThe));
                strBuilder.AppendLine(string.Format("     <td>Họ và tên</td><td>{0}</td>", hoTenNhanVien));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>Lương</td><td>{0}</td>", item.LuongCanBanThucLanh));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>PC trách nhiệm</td><td>{0}</td>", item.PCTrachNhiemThucLanh));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>TC chuyên cần</td><td>{0}</td>", item.TCChuyenCanThucLanh));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>TC đi lại</td><td>{0}</td>", item.PhuCapDiLaiThucLanh));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>TC cơm</td><td>{0}</td>", item.PhuCapTienComThucLanh));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>TC điện thoại</td><td>{0}</td>", item.PhuCapDienThoaiThucLanh));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>Nghỉ lễ, Phép năm, chế độ</td><td>{0}</td>", item.TienNghiLeNghiPhepCheDo));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>Thưởng km</td><td>{0}</td>", item.SoTienThuongKmThucLanh));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>Thưởng chuyến</td><td>{0}</td>", item.SoTienThuongChuyenThucLanh));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>Thưởng hiệu quả công việc</td><td>{0}</td>", item.SoTienThuongHieuQuaCongViec));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>Điều chỉnh</td><td>{0}</td>", item.DieuChinh));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'><b>Tổng trả gộp</b></td><td><b>{0}</b></td>", item.TienTraGop));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;' style='border-top-width: thin; border-top-style: solid;'>BHXH {0}</td><td style='border-top-width: thin; border-top-style: solid;'>{1}</td>", phanTramBHXH, item.BHXH));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>BHYT {0}</td><td>{1}</td>", phanTramBHYT, item.BHYT));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>BHTN {0}</td><td>{1}</td>", phanTramBHTN, item.BHTN));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>Thuế thu nhập</td><td>{0}</td>", item.ThueThuNhap));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>Tiền tạm ứng</td><td>{0}</td>", item.TienTamUng));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'>Thưởng chuyến (đã lãnh trong ngày)</td><td>{0}</td>", item.SoTienThuongChuyenThucLanh));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt;'><b>Tổng khấu trừ</b></td><td><b>=SUM(D{0}:D{1})</b></td>", firstRowInTableExcel + 16, firstRowInTableExcel + 21));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("   <tr>"));
                strBuilder.AppendLine(string.Format("     <td colspan='3' style='font-size: 13pt; border-top-width: thin; border-top-style: solid;'><b><i><u>Thực lãnh</u></i></b></td><td style='border-top-width: thin; border-top-style: solid;'><b>=D{0}-D{1}</b></td>", firstRowInTableExcel + 15, firstRowInTableExcel + 21));
                strBuilder.AppendLine(string.Format("   </tr>"));
                strBuilder.AppendLine(string.Format("</table>"));
            }

            #endregion
            var strDocument = _reportsServiceDelegate.AddBodyTagForExportWord(strBuilder.ToString());
            _reportsServiceDelegate.ExportHtmlToExcel(strDocument, string.Format("PhieuLuongThang{0}-{1}", objBangChamCong.Thang.ToString("0#"), objBangChamCong.Nam));
        }

        #endregion

        #region TAMNN
        #endregion

        #region TINHLT
        #endregion

    }
}
